
#ifndef __CE_SCENE_BILLBOARDANIMATOR_H__
#define __CE_SCENE_BILLBOARDANIMATOR_H__

#include <export.h>
#include <scene/ianimator.h>

struct ceRenderEnvironment;
class ceEntityNode;

/**
 * \addtogroup scene
 * @{
 */

/**
 * @brief Implementation of the iAnimator interface for billboards
 */
class CE_API ceBillboardAnimator : public iAnimator
{
public:
  enum DegreeOfFreedom
  {
    DOF_Z,
    DOF_XZ
  };
private:
  DegreeOfFreedom _dof;

public:
  ceBillboardAnimator();

  void SetDegreeOfFreedom (DegreeOfFreedom dof);
  DegreeOfFreedom GetDegreeOfFreedom () const;

  void Animate(ceNode *node, ceRenderEnvironment &env);
};

/** @} */

#endif /* !__CE_SCENE_BILLBOARDANIMATOR_H__ */
